//
//  Module.h
//  CocoaSynth
//
//  Created by Jérémy Brault on 17/02/10.
//  Copyright 2010 None. All rights reserved.
//

#import <Cocoa/Cocoa.h>

#import "PortInProtocol.h"
#import "SampleProtocol.h"

@interface Module : NSObject {
	id<PortInProtocol> portIn;
	NSMutableArray* portsOut;
	
	id<SampleProtocol> inputSample;
}

@property (nonatomic, retain) id<PortInProtocol> portIn;
@property (nonatomic, retain) NSMutableArray* portsOut;
@property (nonatomic, retain) id<SampleProtocol> inputSample;

- (void)read;

- (void)compute;

- (void)stop;

- (void)addPortOut:(id<PortOutProtocol>)aPortOut;

- (void)removePortOut:(id<PortOutProtocol>)aPortOut;

@end
